﻿; ====================
#NoEnv 
#Singleinstance,Force
;#Warn
SendMode Input
SetWorkingDir %A_ScriptDir%
; ====================
Menu, Tray, NoStandard
Menu, Tray, Add, 配置(&S), MainMenu
Menu, Tray, Add, 导出QZA(&Q), MainMenu
Menu, Tray, Add, 下载QZA(&D), MainMenu
Menu, Tray, Add
Menu, Tray, Add, 关于(&A), MainMenu
Menu, Tray, Add, 帮助(&H), MainMenu
Menu, Tray, Add, 重启(&R), MainMenu
Menu, Tray, Add, 退出(&X), MainMenu
Menu, Tray, Default, 配置(&S)
Menu, Tray, Click, 1
Menu, Tray, Tip, QuickZ

; 保存当前的脚本进程HWND到ini中,用于给GUI.ahk 操作。
INIWrite, %A_Scripthwnd%, %A_TEMP%\MZC, Auto, HWND

; 监听 WM_COPYDATA 消息 
WM_COPYDATA := 0x4A
OnMessage(WM_COPYDATA, "QZ_WM_COPYDATA")

; 任务栏图标设置 
Menu, Tray, Icon, %A_ScriptDir%\Icons\default.icl, 1
;TrayTip, 提示, 请按热键 alt & z, 1

; 默认配置文件
configFile := A_ScriptDir "\config.json"
AhkDllPath := A_ScriptDir "\Lib\AutoHotkey.dll"
; 加载配置
if FileExist(configFile)
{
    g_qzConfig := Json.Parse(FileRead(configFile))
    CheckHotkey()
    for hk , objHK in g_qzConfig.hotkey
        Hotkey, %hk%, % ObjHK.action, On
}
else
{
    Run, %A_ahkpath% "%A_ScriptDir%\GUI.ahk"
    Hotkey, !z, SimpleMenuAll, On
}
QZ_Thread()
return
CheckHotkey()
{
    global g_qzConfig
    If Not IsObject(g_qzConfig["hotkey"])
    {
        g_qzConfig["hotkey"] := {"!z": {Action: "SimpleMenuAll", Comment: "显示常规菜单"}}
        qzConfigSave()
    }
}
MainMenu:
  If A_ThisMenuItemPos = 1
  {
      run "%A_ahkpath%" "%A_ScriptDir%\GUI.ahk"
  }
  else If A_ThisMenuItemPos = 2
  {
      run "%A_ahkpath%" "%A_ScriptDir%\QZAManager.ahk"
  }
  else If A_ThisMenuItemPos = 3
  {
      run http://pan.baidu.com/s/1kTvPTcV
  }
  else If A_ThisMenuItemPos = 5
  {
      QZAbout()
  }
  else If A_ThisMenuItemPos = 6
  {
      run http://quickzhelp.mydoc.io/
  }
  else If A_ThisMenuItemPos = 7
  {
      reload
  }
  else If A_ThisMenuItemPos = 8
  {
      Exitapp
  }
return

;f1::
  ;gosub, lancherzload
;return

; ====================
; 加载函数库  {{{1
#include %A_ScriptDir%\lib\QZAPI.ahk ; QuickZ提供的API，插件主要调用这里的函数
#include %A_ScriptDir%\lib\Class_Base.ahk ; 对象基类，避免错误调用类
#include %A_ScriptDir%\lib\Class_Json.ahk ; 读取JSON格式配置文件的函数
#include %A_ScriptDir%\lib\Functions.ahk ; 常用的函数，如EvnGet()、WinGet()
#include %A_ScriptDir%\lib\QZActions.ahk ; 自动include Actions\ 目录下的脚本
#include %A_ScriptDir%\lib\ReplaceEnv.ahk
#include %A_ScriptDir%\plugins\SimpleMenu.ahk ; (插件) 利用AHK内置的Menu 命令生成的菜单
;#include %A_ScriptDir%\plugins\LancherZ.ahk ; (插件) 类似altRun
